home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / p_misc / netconf.arc / KISSTNC.TXT < prev    next >
Text File  |  1988-12-10  |  33KB  |  785 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                   The KISS TNC: A simple Host-to-TNC communications
  11.                                        protocol
  12.  
  13.  
  14.                                  Mike Chepponis, K3MC
  15.  
  16.                                    Phil Karn, KA9Q
  17.  
  18.  
  19.  
  20.                                        _A_B_S_T_R_A_C_T
  21.  
  22.                      The KISS[1] TNC provides direct computer  to  TNC
  23.                 communication  using a simple protocol described here.
  24.                 Many TNCs now implement it, including the  TAPR  TNC-1
  25.                 and TNC-2 (and their clones), the venerable VADCG TNC,
  26.                 the AEA PK-232/PK-87 and all TNCs  in  the  Kantronics
  27.                 line.   KISS has quickly become the protocol of choice
  28.                 for TCP/IP operation and multi-connect BBS software.
  29.  
  30.  
  31.  
  32.            _1.  _I_n_t_r_o_d_u_c_t_i_o_n
  33.  
  34.                 Standard TNC software was written with human users in mind;
  35.            unfortunately,  commands and responses well suited for human use
  36.            are ill-adapted for host computer use, and vice versa.  This  is
  37.            especially  true  for multi-user servers such as bulletin boards
  38.            which must  multiplex  data  from  several  network  connections
  39.            across  a  single  host/TNC  link.  In addition, experimentation
  40.            with new link level protocols is greatly hampered because  there
  41.            may  very well be no way at all to generate or receive frames in
  42.            the desired format without reprogramming the TNC.
  43.  
  44.                 The KISS TNC solves these problems by eliminating  as  much
  45.            as possible from the TNC software, giving the attached host com-
  46.            plete control over and access to the contents of the HDLC frames
  47.            transmitted  and  received over the air.  This is central to the
  48.            KISS philosophy: the host software should have control over  all
  49.            TNC functions at the lowest possible level.
  50.  
  51.                 The AX.25 protocol is removed entirely from the TNC, as are
  52.            all  command interpreters and the like.  The TNC simply converts
  53.            between synchronous HDLC, spoken on  the  full-  or  half-duplex
  54.            radio  channel,  and  a  special asynchronous, full duplex frame
  55.            format spoken on the host/TNC link.  Every frame received on the
  56.            _________________________
  57.              [1]
  58.              [1] "Keep It Simple, Stupid"
  59.  
  60.  
  61.                                    December 6, 1988
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.            HDLC link is  passed  intact  to  the  host  once  it  has  been
  71.            translated  to  the  asynchronous format; likewise, asynchronous
  72.            frames from the host are transmitted on the radio  channel  once
  73.            they have been converted to HDLC format.
  74.  
  75.                 Of course, this means that the bulk of  AX.25  (or  another
  76.            protocol)  must  now  be implemented on the host system. This is
  77.            acceptable, however, considering the greatly increased flexibil-
  78.            ity  and reduced overall complexity that comes from allowing the
  79.            protocol to reside on the same machine with the applications  to
  80.            which it is closely coupled.
  81.  
  82.                 It should be stressed that the KISS TNC was  intended  only
  83.            as  a  stopgap.   Ideally, host computers would have HDLC inter-
  84.            faces of their  own,  making  separate  TNCs  unnecessary.  [15]
  85.            Unfortunately,  HDLC  interfaces  are  rare,  although  they are
  86.            starting to appear for the  IBM  PC.   The  KISS  TNC  therefore
  87.            becomes  the  "next  best thing" to a real HDLC interface, since
  88.            the host computer only needs an ordinary asynchronous interface.
  89.  
  90.            _2.  _A_s_y_n_c_h_r_o_n_o_u_s _F_r_a_m_e _F_o_r_m_a_t
  91.  
  92.                 The "asynchronous packet protocol" spoken between the  host
  93.            and  TNC  is  very simple, since its only function is to delimit
  94.            frames. Each frame is both preceded and followed  by  a  special
  95.            FEND  (Frame  End) character, analogous to an HDLC flag.  No CRC
  96.            or checksum is provided.  In addition,  no  RS-232C  handshaking
  97.            signals are employed.
  98.  
  99.                 The special characters are:
  100.  
  101.  
  102.                  ____________________________________________________
  103.                   Abbreviation   Description               Hex value
  104.                  ________________________________________________________________________________________________________
  105.                   FEND           Frame End                 C0
  106.                   FESC           Frame Escape              DB
  107.                   TFEND          Transposed Frame End      DC
  108.                   TFESC          Transposed Frame Escape   DD
  109.                  ____________________________________________________
  110.                 ||||||
  111.  
  112.  
  113.  
  114.  
  115.                                                                     ||||||
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.                 The reason for both preceding and ending frames with  FENDs
  124.            is  to  improve  performance  when  there is noise on the asynch
  125.            line.  The FEND at the beginning of a  frame  serves  to  "flush
  126.            out"  any  accumulated garbage into a separate frame (which will
  127.            be discarded by the upper layer protocol) instead of sticking it
  128.            on  the  front of an otherwise good frame.  As with back-to-back
  129.            flags in HDLC, two FEND characters in a row should not be inter-
  130.            preted as delimiting an empty frame.
  131.  
  132.            _3.  _T_r_a_n_s_p_a_r_e_n_c_y
  133.  
  134.                 Frames are sent in 8-bit binary; the asynchronous  link  is
  135.            set  to  8 data bits, 1 stop bit, and no parity.  If a FEND ever
  136.  
  137.  
  138.  
  139.                                    December 6, 1988
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.            appears in the data, it is translated into the two byte sequence
  149.            FESC  TFEND  (Frame Escape, Transposed Frame End).  Likewise, if
  150.            the FESC character ever appears in the user data, it is replaced
  151.            with  the two character sequence FESC TFESC (Frame Escape, Tran-
  152.            sposed Frame Escape).
  153.  
  154.                 As characters arrive at the receiver, they are appended  to
  155.            a  buffer  containing the current frame.  Receiving a FEND marks
  156.            the end of the current  frame.   Receipt  of  a  FESC  puts  the
  157.            receiver  into "escaped mode", causing the receiver to translate
  158.            a following TFESC or TFEND back to FESC or  FEND,  respectively,
  159.            before adding it to the receive buffer and leaving escaped mode.
  160.            Receipt of any character other than  TFESC  or  TFEND  while  in
  161.            escaped  mode is an error; no action is taken and frame assembly
  162.            continues.  A TFEND or TESC received while not in  escaped  mode
  163.            is treated as an ordinary data character.
  164.  
  165.                 This procedure may seem somewhat  complicated,  but  it  is
  166.            easy  to implement and recovers quickly from errors. In particu-
  167.            lar, the FEND character is never sent over the channel except as
  168.            an  actual end-of-frame indication. This ensures that any intact
  169.            frame (properly delimited by FEND  characters)  will  always  be
  170.            received  properly  regardless  of  the  starting  state  of the
  171.            receiver or corruption of the preceding frame.
  172.  
  173.                 This asynchronous framing protocol is identical  to  "SLIP"
  174.            (Serial Line IP), a popular method for sending ARPA IP datagrams
  175.            across asynchronous links. It could also form the  basis  of  an
  176.            asynchronous  amateur packet radio link protocol that avoids the
  177.            complexity of HDLC on slow speed channels.
  178.  
  179.            _4.  _C_o_n_t_r_o_l _o_f _t_h_e _K_I_S_S _T_N_C
  180.  
  181.                 Each asynchronous data frame sent to the TNC  is  converted
  182.            back  into "pure" form and queued for transmission as a separate
  183.            HDLC frame.  Although removing the human interface and the AX.25
  184.            protocol  from the TNC makes most existing TNC commands unneces-
  185.            sary (i.e., they  become  host  functions),  the  TNC  is  still
  186.            responsible  for keying the transmitter's PTT line and deferring
  187.            to other activity on the radio channel. It is  therefore  neces-
  188.            sary  to  allow the host to control a few TNC parameters, namely
  189.            the transmitter keyup delay, the transmitter  persistence  vari-
  190.            ables and any special hardware that a particular TNC may have.
  191.  
  192.                 To distinguish between  command  and  data  frames  on  the
  193.            host/TNC link, the first byte of each asynchronous frame between
  194.            host and TNC is a "type" indicator.  This type indicator byte is
  195.            broken into two 4-bit nibbles so that the low-order nibble indi-
  196.            cates the command number (given in  the  table  below)  and  the
  197.            high-order  nibble indicates the port number for that particular
  198.            command.  In systems with only one HDLC port, it is  by  defini-
  199.            tion  Port  0.  In multi-port TNCs, the upper 4 bits of the type
  200.            indicator byte can specify one of up to sixteen ports.  The fol-
  201.            lowing commands are defined in frames to the TNC  (the "Command"
  202.  
  203.  
  204.                                    December 6, 1988
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.            field is in hexadecimal):
  214.  
  215.  
  216.            ________________________________________________________________
  217.                Command           Function              Comments
  218.            ________________________________________________________________________________________________________________________________
  219.                0                 Data frame
  220.                                                        The rest of  the
  221.                                                        frame is data to
  222.                                                        be sent  on  the
  223.                                                        HDLC channel.
  224.            ________________________________________________________________
  225.                1                 TXDELAY
  226.                                                        The next byte is
  227.                                                        the  transmitter
  228.                                                        keyup  delay  in
  229.                                                        10   ms   units.
  230.                                                        The      default
  231.                                                        start-up   value
  232.                                                        is 50 (i.e., 500
  233.                                                        ms).
  234.            ________________________________________________________________
  235.                2                 P
  236.                                                        The next byte is
  237.                                                        the  persistence
  238.                                                        parameter,    p,
  239.                                                        scaled   to  the
  240.                                                        range  0  -  255
  241.                                                        with the follow-
  242.                                                        ing formula:
  243.  
  244.                                                        _P=_p*256-1
  245.  
  246.                                                        The      default
  247.                                                        value  is P = 63
  248.                                                        (i.e.,    p    =
  249.                                                        0.25).
  250.            ________________________________________________________________
  251.                3                 SlotTime
  252.                                                        The next byte is
  253.                                                        the  slot inter-
  254.                                                        val  in  10   ms
  255.                                                        units.       The
  256.                                                        default  is   10
  257.                                                        (i.e., 100ms).
  258.            ________________________________________________________________
  259.                4                 TXtail
  260.                                                        The next byte is
  261.                                                        the time to hold
  262.                                                        up the TX  after
  263.                                                        the FCS has been
  264.                                                        sent, in  10  ms
  265.                                                        units.      This
  266.                                                        command       is
  267.                                                        obsolete, and is
  268.                                                        included    here
  269.                                                        only  for compa-
  270.                                                        tibility    with
  271.                                                        some    existing
  272.                                                        implementations.
  273.            ________________________________________________________________
  274.  
  275.  
  276.  
  277.  
  278.                                    December 6, 1988
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.                5                 FullDuplex
  288.                                                        The next byte is
  289.                                                        0    for    half
  290.                                                        duplex,  nonzero
  291.                                                        for full duplex.
  292.                                                        The default is 0
  293.                                                        (i.e.,      half
  294.                                                        duplex).
  295.            ________________________________________________________________
  296.                6                 SetHardware
  297.                                                        Specific     for
  298.                                                        each   TNC.   In
  299.                                                        the TNC-1,  this
  300.                                                        command sets the
  301.                                                        modem     speed.
  302.                                                        Other  implemen-
  303.                                                        tations may  use
  304.                                                        this    function
  305.                                                        for        other
  306.                                                        hardware-
  307.                                                        specific   func-
  308.                                                        tions.
  309.            ________________________________________________________________
  310.                FF                Return
  311.                                                        Exit  KISS   and
  312.                                                        return   control
  313.                                                        to   a   higher-
  314.                                                        level   program.
  315.                                                        This  is  useful
  316.                                                        only  when  KISS
  317.                                                        is  incorporated
  318.                                                        into   the   TNC
  319.                                                        along with other
  320.                                                        applications.
  321.            ________________________________________________________________
  322.           |||||||||||||||||||||||||||||||
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.                                                                           |||||||||||||||||||||||||||||||
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.                 The following types are defined in frames to the host:
  383.  
  384.            ________________________________________________________________
  385.                Type             Function               Comments
  386.            ________________________________________________________________________________________________________________________________
  387.                0                Data frame
  388.                                                        Rest of frame is
  389.                                                        data   from  the
  390.                                                        HDLC channel
  391.            ________________________________________________________________
  392.           |||||
  393.  
  394.  
  395.  
  396.                                                                           |||||
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.                 No other types are defined; in particular, there is no pro-
  404.            vision for acknowledging data or command frames sent to the TNC.
  405.            KISS implementations must ignore any unsupported command  types.
  406.            All  KISS implementations must implement commands 0,1,2,3 and 5;
  407.            the others are optional.
  408.  
  409.            _5.  _B_u_f_f_e_r _a_n_d _P_a_c_k_e_t _S_i_z_e _L_i_m_i_t_s
  410.  
  411.                 One of the things that makes the KISS  TNC  simple  is  the
  412.            deliberate lack of TNC/host flow control. The host computers run
  413.            a higher level protocol (typically TCP, but AX.25  in  the  con-
  414.            nected  mode  also  qualifies)  that  handles flow control on an
  415.  
  416.  
  417.                                    December 6, 1988
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.            end-to-end basis.  Ideally,  the  TNC  would  always  have  more
  427.            buffer  memory  than  the sum of all the flow control windows of
  428.            all of the logical connections using it  at  that  moment.  This
  429.            would  allow  for the worst case (i.e., all users sending simul-
  430.            taneously).  In practice, however, many (if not most) user  con-
  431.            nections are idle for long periods of time, so buffer memory may
  432.            be safely "overbooked".  When the occasional "bump" occurs,  the
  433.            TNC  must  drop  the  packet gracefully, i.e., ignore it without
  434.            crashing or losing packets already  queued.   The  higher  level
  435.            protocol is expected to recover by "backing off" and retransmit-
  436.            ting the packet at a later time, just  as  it  does  whenever  a
  437.            packet  is lost in the network for any other reason.  As long as
  438.            this occurs infrequently, the performance degradation is slight;
  439.            therefore  the  TNC  should  provide as much packet buffering as
  440.            possible, limited only by available RAM.
  441.  
  442.                 Individual packets at  least  1024  bytes  long  should  be
  443.            allowed.   As  with  buffer  queues,  it  is recommended that no
  444.            artificial limits be placed on packet size.   For  example,  the
  445.            K3MC  code  running  on  a  TNC-2  with  32K of RAM can send and
  446.            receive 30K byte packets, although  this  is  admittedly  rather
  447.            extreme.   Large  packets reduce protocol overhead on good chan-
  448.            nels. They are essential for good performance when operating  on
  449.            high speed modems such as the new WA4DSY 56 kbps design.
  450.  
  451.  
  452.            _6.  _P_e_r_s_i_s_t_e_n_c_e
  453.  
  454.                 The P and SlotTime parameters are used  to  implement  true
  455.            p-persistent CSMA.  This works as follows:
  456.  
  457.                 Whenever the host queues data  for  transmission,  the  TNC
  458.            begins  monitoring  the carrier detect signal from the modem. It
  459.            waits indefinitely for this signal  to  go  inactive.  When  the
  460.            channel  clears, the TNC generates a random number between 0 and
  461.            1.[2] If this number is less than or equal to the  parameter  _p,
  462.            the  TNC  keys the transmitter, waits .01 * TXDELAY seconds, and
  463.            transmits all queued frames. The TNC then unkeys the transmitter
  464.            and  goes  back  to  the  idle  state.   If the random number is
  465.            greater than _p, the  TNC  delays  .01  *  SlotTime  seconds  and
  466.            repeats the procedure beginning with the sampling of the carrier
  467.            detect signal. (If the carrier detect signal has gone active  in
  468.            the  meantime,  the  TNC again waits for it to clear before con-
  469.            tinuing).  Note that _p=1 means "transmit as soon as the  channel
  470.            _________________________
  471.              [2] To conform to the literature,  here  _p  takes  on
  472.            values between 0 to 1. However, fractions are difficult
  473.            to use in a fixed point microprocessor so the KISS  TNC
  474.            actually  works  with _P values that are rescaled to the
  475.            range 0 to  255.   To  avoid  confusion,  we  will  use
  476.            lower-case  _p to mean the former (0-1) and upper-case _P
  477.            whenever we mean the latter (0-255).
  478.  
  479.  
  480.  
  481.  
  482.                                    December 6, 1988
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.            clears"; in this case the  p-persistence  algorithm  degenerates
  492.            into  the 1-persistent CSMA generally used by conventional AX.25
  493.            TNCs.
  494.  
  495.                 p-persistence causes the TNC to wait for an  exponentially-
  496.            distributed  random  interval after sensing that the channel has
  497.            gone clear before attempting to transmit. With proper tuning  of
  498.            the  parameters _p and SlotTime, several stations with traffic to
  499.            send are much less likely to collide with each other  when  they
  500.            all  see the channel go clear.  One transmits first and the oth-
  501.            ers see it in time to  prevent  a  collision,  and  the  channel
  502.            remains  stable  under  heavy  load.  See references [1] through
  503.            [13] for details.
  504.  
  505.                 We believe that optimum _p and SlotTime values could be com-
  506.            puted  automatically.   This could be done by noting the channel
  507.            occupancy and the length of the frames on the channel.   We  are
  508.            proceeding  with  a  simulation  of  the p-persistence algorithm
  509.            described here that we  hope  will  allow  us  to  construct  an
  510.            automatic algorithm for _p and SlotTime selection.
  511.  
  512.                 We added p-persistence to the KISS TNC  because  it  was  a
  513.            convenient  opportunity to do so.  However, it is not inherently
  514.            associated with KISS nor with  new  protocols  such  as  TCP/IP.
  515.            Rather,  persistence is a _c_h_a_n_n_e_l _a_c_c_e_s_s protocol that can yield
  516.            dramatic performance improvements regardless of the higher level
  517.            protocol  in  use;  we urge it be added to _e_v_e_r_y TNC, whether or
  518.            not it supports KISS.
  519.  
  520.            _7.  _I_m_p_l_e_m_e_n_t_a_t_i_o_n _H_i_s_t_o_r_y
  521.  
  522.                 The original idea for a simplified host/TNC protocol is due
  523.            to Brian Lloyd, WB6RQN.  Phil Karn, KA9Q, organized the specifi-
  524.            cation and submitted an initial version on 6 August 1986.  As of
  525.            this writing, the following KISS TNC implementations exist:
  526.  
  527.  
  528.            _________________________________________________________________
  529.             TNC type                Author                 Comments
  530.            __________________________________________________________________________________________________________________________________
  531.             TAPR TNC-2 & clones     Mike Chepponis, K3MC
  532.                                                            First  implemen-
  533.                                                            tation,     most
  534.                                                            widely     used.
  535.                                                            Exists  in  both
  536.                                                            downloadable and
  537.                                                            dedicated    ROM
  538.                                                            versions.
  539.            _________________________________________________________________
  540.             TAPR TNC-1 & clones     Marc Kaufman, WB6ECE
  541.                                                            Both    download
  542.                                                            and    dedicated
  543.                                                            ROM versions.
  544.            _________________________________________________________________
  545.             VADCG TNC & Ashby TNC   Mike Bruski, AJ9X      Dedicated ROM.
  546.            _________________________________________________________________
  547.  
  548.  
  549.  
  550.  
  551.  
  552.                                    December 6, 1988
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.             AEA PK-232 & PK-87      Steve Stuart, N6IA
  562.                                                            Integrated  into
  563.                                                            standard     AEA
  564.                                                            firmware  as  of
  565.                                                            21 January 1987.
  566.                                                            The special com-
  567.                                                            mands  "KISS ON"
  568.                                                            and  "KISS  OFF"
  569.                                                            (!)      control
  570.                                                            entry into  KISS
  571.                                                            mode.
  572.            _________________________________________________________________
  573.             Kantronics              Mike Huslig
  574.                                                            Integrated  into
  575.                                                            standard    Kan-
  576.                                                            tronics firmware
  577.                                                            as of July 1987.
  578.            _________________________________________________________________
  579.           |||||||||||||||
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.                                                                            |||||||||||||||
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.                 The AEA and Kantronics implementations  are  noteworthy  in
  611.            that  the  KISS  functions  were  written  by  those vendors and
  612.            integrated into their standard  TNC  firmware.  Their  TNCs  can
  613.            operate  in  either  KISS  or  regular  AX.25  mode  without ROM
  614.            changes.  Since the TNC-1 and TNC-2 KISS versions  were  written
  615.            by  different  authors  than  the  original  AX.25 firmware, and
  616.            because the original source code for those  TNCs  was  not  made
  617.            available,  running KISS on these TNCs requires the installation
  618.            of nonstandard ROMs. Two ROMs are available for the  TNC-2.  One
  619.            contains "dedicated" KISS TNC code; the TNC operates only in the
  620.            KISS  mode.  The  "download"  version  contains  standard   N2WX
  621.            firmware with a bootstrap loader overlay. When the TNC is turned
  622.            on or reset, it executes the loader. The loader  will  accept  a
  623.            memory  image  in Intel Hex format, or it can be told to execute
  624.            the standard N2WX firmware  through  the  "H"[3]  command.   The
  625.            download version is handy for occasional KISS  operation,  while
  626.            the  dedicated  version is much more convenient for full-time or
  627.            demo KISS operation.
  628.  
  629.                 The code for the TNC-1 is also available in  both  download
  630.            and  dedicated  versions.  However,  at present the download ROM
  631.            contains only a bootstrap; the original ROMs must be put back in
  632.            to run the original TNC software.
  633.  
  634.            _8.  _C_r_e_d_i_t_s
  635.  
  636.                 The combined "Howie + downloader" ROM  for  the  TNC-2  was
  637.            contributed  by  WA7MXZ.  This document was carefully typeset by
  638.            Bob Hoffman, N3CVL.
  639.  
  640.  
  641.  
  642.  
  643.            _________________________
  644.              [3] For "Howie", of course.
  645.  
  646.  
  647.  
  648.  
  649.                                    December 6, 1988
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.            _9.  _B_i_b_l_i_o_g_r_a_p_h_y
  659.  
  660.  
  661.            1.   Tanenbaum, Andrew S., "Computer  Networks"    pp.  288-292.
  662.                 Prentice-Hall  1981.
  663.  
  664.            2.   Tobagi, F. A.: "Random Access Techniques for Data Transmis-
  665.                 sion  over  Packet  Switched Radio Networks," Ph.D. thesis,
  666.                 Computer Science Department, UCLA, 1974.
  667.  
  668.            3.   Kleinrock, L., and Tobagi, F.:  "Random  Access  Techniques
  669.                 for Data Transmission over Packet-Switched Radio Channels,"
  670.                 Proc. NCC, pp. 187-201, 1975.
  671.  
  672.            4.   Tobagi, F. A., Gerla, M., Peebles, R.W., and Manning, E.G.:
  673.                 "Modeling  and  Measurement Techniques in Packet Communica-
  674.                 tions Networks," Proc.  IEEE, vol. 66, pp. 1423-1447,  Nov.
  675.                 1978.
  676.  
  677.            5.   Lam, S. S.: "Packet Switching in  a  Multiaccess  Broadcast
  678.                 Channel",  Ph.D. thesis, Computer Science Department, UCLA,
  679.                 1974.
  680.  
  681.            6.   Lam, S. S., and Kleinrock, L.: "Packet Switching in a  Mul-
  682.                 tiaccess  Broadcast  Channel:  Dynamic Control Procedures,"
  683.                 IEEE Trans. Commun., vol COM-23, pp. 891-904, Sept. 1975.
  684.  
  685.            7.   Lam, S. S.: "A Carrier Sense Multiple Access  Protocol  for
  686.                 Local  Networks,"  Comput. Networks, vol 4, pp. 21-32, Feb.
  687.                 1980
  688.  
  689.            8.   Tobagi, F. A.: "Multiaccess Protocols in Packet  Communica-
  690.                 tions  Systems,"  IEEE Trans. Commun., vol COM-28, pp. 468-
  691.                 488, April 1980c.
  692.  
  693.            9.   Bertsekas, D., and Gallager, R.: "Data Networks", pp.  274-
  694.                 282 Prentice-Hall 1987.
  695.  
  696.            10.  Kahn, R. E., Gronemeyer, S. A., Burchfiel, J., and  Kungel-
  697.                 man,  R.  C.   "Advances in Packet Radio Technology," Proc.
  698.                 IEEE.  pp. 1468-1496.  1978.
  699.  
  700.            11.  Takagi, H.: "Analysis of Polling  Systems,"  Cambridge,  MA
  701.                 MIT Press 1986.
  702.  
  703.            12.  Tobagi, F. A., and Kleinrock, L. "Packet Switching in Radio
  704.                 Channels: Part II - The Hidden Terminal Problem in CSMA and
  705.                 Busy-Tone Solution," IEEE Trans. Commun.  COM-23 pp.  1417-
  706.                 1433.  1975.
  707.  
  708.            13.  Rivest, R. L.: "Network Control  by  Bayessian  Broadcast,"
  709.                 Report MIT/LCS/TM-285.  Cambridge, MA.  MIT, Laboratory for
  710.                 Computer Science.  1985.
  711.  
  712.  
  713.                                    December 6, 1988
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.            14.  Karn, P. and Lloyd, B.: "Link Level  Protocols  Revisited,"
  723.                 ARRL  Amateur  Radio  Fifth Computer Networking Conference,
  724.                 pp. 5.25-5.37, Orlando, 9 March 1986.
  725.  
  726.            15.  Karn, P., "Why Do We Even Need TNCs Anyway", Gateway,  vol.
  727.                 3 no. 2, September 5, 1986.
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.                                    December 6, 1988
  778.  
  779.  
  780. 
  781.